<template>
  <footer class="footer">
    <span class="todo-count">剩余<strong>{{leftCount}}</strong></span>
    <ul class="filters">
      <li>
        <a @click="$emit('changeType','all')" :class="{selected: type==='all' }" href="javascript:;" >全部</a>
      </li>
      <li>
        <a @click="$emit('changeType','no')" :class="{selected: type==='no' }"  href= "javascript:;">未完成</a>
      </li>
      <li>
        <a @click="$emit('changeType','yes')" :class="{selected: type==='yes' }" href="javascript:;" >已完成</a>
      </li>
    </ul>
    <!--3.4 清除功能 提供计算属性，用于控制清空按钮的显示和隐藏-->
    <!-- 通过v-show控制显示隐藏, 注册了点击事件 -->
    <button class="clear-completed"  v-show="isShowClear" 
    @click="clear"
    >清除已完成</button>
  </footer>
</template>

<script>
export default {
  // 3.1.1 接收父组件传过来的list
  props:{
    list:{
      type:Array,
      required:true
    },

    type:String
  },
  // 计算属性，计算出新的数据
    //3.2 footer组件提供了一个计算属性，用于统计未完成的任务
  computed:{
    leftCount(){
      // 未完成的长度
    // 统计的未完成的任务的数量
      return this.list.filter(item=>item.isDone===false).length
    },
    isShowClear(){
      return this.list.some(item=>item.isDone)
    }
  },
  methods:{
    clear(){
      this.$emit('clear')
    }
  }
}
</script>